import { createI18n } from 'vue-i18n'
import ZH from './zh_CN.json'
import EN from './en_US.json'
import ES from './es_US.json'

const messages = {
  zh_CN: { ...ZH },
  en_US: { ...EN },
  es_US: { ...ES }
}

// 从localStorage获取存储的语言设置
const storedLang = localStorage.getItem('lang')
const defaultLocale = storedLang === 'English' ? 'en_US' : storedLang === 'español' ? 'es_US' : 'zh_CN'

const i18n = createI18n({
  legacy: false,
  globalInjection: true,
  locale: defaultLocale,
  messages,
  silentTranslationWarn: true, // 禁用翻译缺失警告
  silentFallbackWarn: true, // 禁用回退语言警告
  missing: (locale, key) => {
    // 自定义处理逻辑，比如记录日志
    // console.log(`Translation missing for key "${key}" in locale "${locale}"`);
    return key; // 返回键名作为默认值
  }
})

/**
 * 请求后台接口获取语言包
 * @param type
 * @returns {Promise}
 */
const getLang=(lang)=>{
  // 将选择的语言存储vuex
  // const defaultLang = '中文';
  const selectedLang = lang ;
  localStorage.setItem('lang', selectedLang)
  // 转换语言类型并赋值i18n
  let language=selectedLang=='中文'?'zh_CN':selectedLang=='English'?'en_US':'es_US'
  i18n.global.locale.value = language;
  // 更新Element Plus的语言配置
  if (window.$updateElementPlusLocale) {
    window.$updateElementPlusLocale(selectedLang)
  }
}



// 导出getLang
export  {getLang}
export default i18n
